package pe.com.casadesign.service.impl;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import pe.com.casadesign.dao.ComponenteDAO;
import pe.com.casadesign.domain.Componente;
import pe.com.casadesign.domain.ListaComponente;
import pe.com.casadesign.domain.OperacionResultado;
import pe.com.casadesign.service.ComponenteService;
import pe.com.casadesign.service.util.Constantes;

/**
 * Implementacion de ComponenteService.
 * 
 * @author Pedro Vera
 * 
 */
@Service
public class ComponenteServiceImpl implements ComponenteService {
	private static final Logger logger = LoggerFactory.getLogger(ComponenteServiceImpl.class);

    @Autowired
    private ComponenteDAO componenteDAO;
    
	@Override
	public ListaComponente listarComponente(Componente componente) {
		return componenteDAO.listarComponente(componente);
	}

	@Override
	public Componente obtenerComponente(Componente componente) {
		return componenteDAO.obtenerComponente(componente);
	}

	@Override
	public OperacionResultado registrarComponente(Componente componente) {
		boolean resultado = componenteDAO.registrarComponente(componente);
		
		OperacionResultado operacionResultado = new OperacionResultado();
		operacionResultado.setCodigoGenerado(String.valueOf(componente.getCodigo()));
		operacionResultado.setEsOK(resultado?Constantes.SI:Constantes.NO);
		
		return operacionResultado;
	}

	@Override
	public OperacionResultado modificarComponente(Componente componente) {
		boolean resultado = componenteDAO.modificarComponente(componente);
		
		OperacionResultado operacionResultado = new OperacionResultado();
		operacionResultado.setEsOK(resultado?Constantes.SI:Constantes.NO);
		
		return operacionResultado;
	}

	@Override
	public OperacionResultado eliminarComponente(Componente componente) {
		boolean resultado = componenteDAO.eliminarComponente(componente);
		
		OperacionResultado operacionResultado = new OperacionResultado();
		operacionResultado.setEsOK(resultado?Constantes.SI:Constantes.NO);
		
		return operacionResultado;
	}

}
